// 导入api请求
import getCategoryApi from '@/api/reclassify'

// 存储三级分类

// 存储数据
const state = {
  getCategory1Id: undefined, // 用户选择的一级分类id
  getCategory2Id: undefined,
  getCategory3Id: undefined,
  getCategory1: [], // 存储一级分类的数据
  getCategory2: [], // 存储二级分类的数据
  getCategory3: [] // 存储三级分类的数据
}
// 异步请求
const actions = {
  // 获取一级分类的数据
  async getCategory1List({ state, commit }) {
    try {
      const result = await getCategoryApi.getCategory1()
      console.log(result, '一级分类数据')
      commit('GET_CATEGORY1_DATA', result.data)
    } catch (error) {
      // 将错误继续向下抛出
      return Promise.reject(error)
    }
  },
  // 根据一级分类选择的id去获取二级分类数据
  // 第一种实现
  async getCategory2List({ state, commit }) {
    // console.log(context)
    // 当一级分类发生改变的时候,清除上一次的一级分类id
    state.getCategory2Id = undefined
    state.getCategory3Id = undefined
    state.getCategory2 = []
    state.getCategory3 = []
    // commit('remove23Id', { getCategory2Id: '', getCategory3Id: '', getCategory2: [], getCategory3: [] })
    try {
      const result = await getCategoryApi.getCategory2(state.getCategory1Id)
      console.log(result, '二级分类数据')
      commit('GET_CATEGORY2_DATA', result.data)
    } catch (error) {
      // 将错误继续向下抛出
      return Promise.reject(error)
    }
  },
  // 根据二级分类选择id去获取三级分类数据
  async getCategory3List({ state, commit }) {
    // console.log(params)
    // commit('remove23Id', { getCategory2Id: '', getCategory3Id: '', getCategory2: [], getCategory3: [] })
    state.getCategory3Id = undefined
    state.getCategory3 = []
    try {
      const result = await getCategoryApi.getCategory3(state.getCategory2Id)
      console.log(result, '三级分类数据')
      commit('GET_CATEGORY3_DATA', result.data)
    } catch (error) {
      // 将错误继续向下抛出
      return Promise.reject(error)
    }
  }
}
// 修改state中的数据
const mutations = {
  // 修改state中getCategory1值
  GET_CATEGORY1_DATA(state, params) {
    // console.log(params)
    // 赋值存储
    state.getCategory1 = params
  },
  // 修改state中getCategory1值
  GET_CATEGORY2_DATA(state, params) {
    // console.log(params)
    // 赋值存储
    state.getCategory2 = params
  },
  GET_CATEGORY3_DATA(state, params) {
    // console.log(params)
    // 赋值存储
    state.getCategory3 = params
  },

  // 修改仓库中 getCategory1Id 中值
  // 定义一个方法
  CHANGE_GET_CATEGORY1_ID(state, params) {
    // console.log(params)

    state.getCategory1Id = params
  },
  // 修改仓库中 getCategory2Id 中值
  // 定义一个方法
  CHANGE_GET_CATEGORY2_ID(state, params) {
    // console.log(params)
    state.getCategory2Id = params
  },
  // 修改仓库中 getCategory3Id 中值
  // 定义一个方法
  CHANGE_GET_CATEGORY3_ID(state, params) {
    // console.log(params)
    state.getCategory3Id = params
  }
  // 清除上一次请求的id
  // remove23Id(state, params) {
  //   state.getCategory2Id = params.getCategory2Id
  //   state.getCategory3Id = params.getCategory3Id
  //   state.getCategory2 = params.getCategory2
  //   state.getCategory3 = params.getCategory3
  // }
}
// vuex中的计算属性
const getters = {}

export default {
  namespaced: true, // 开启命名空间
  state,
  actions,
  mutations,
  getters
}
